/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.catosist.run.dataaccess.domain.hibernate;

import com.catosist.run.dataaccess.base.hibernate.HibernateGenericDAO;
import com.catosist.run.dataaccess.domain.DocvehiDao;
import com.catosist.run.dataaccess.model.DocvehiIdVO;
import com.catosist.run.dataaccess.model.DocvehiVO;
import java.util.List;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author igorov
 */
public class HibernateDocvehiDao extends HibernateGenericDAO<DocvehiVO, DocvehiIdVO> implements DocvehiDao {
    public HibernateDocvehiDao(){
        super(DocvehiVO.class);
    }

    public List<DocvehiVO> getByVehiculoId(int vehiculoId) {
        DetachedCriteria detachedCriteria = DetachedCriteria.forClass(DocvehiVO.class);
        detachedCriteria.add(Restrictions.eq("vehiculo.id", vehiculoId));
        detachedCriteria.addOrder(Order.desc("ffin"));
        List<DocvehiVO> docvehiVOs = listByCriteria(detachedCriteria);
        return docvehiVOs;
    }

    public List<DocvehiVO> getAllGroupByNombre() {
        return this.getSession().
                createSQLQuery("SELECT * FROM docvehi group by nombre;").
                addEntity(DocvehiVO.class).list();
    }

    public List<DocvehiVO> getAllGroupByAgente() {
        return this.getSession().
                createSQLQuery("SELECT * FROM docvehi group by agente;").
                addEntity(DocvehiVO.class).list();
    }

}
